// See https://sequelize.org/master/manual/model-basics.html
// for more of what you can do here.
import { Sequelize, DataTypes, Model } from 'sequelize';
import { Application } from '../declarations';
import { HookReturn } from 'sequelize/types/hooks';

export default function (app: Application): typeof Model {
  const sequelizeClient: Sequelize = app.get('sequelizeClient');
  const customer = sequelizeClient.define('customer', {
    // 用户id 
    userid:{
      type:DataTypes.STRING 
 	  },
    // 图片信息 
    img:{
      type:DataTypes.STRING 
 	  },
    // 顾客姓名 
    uname:{
      type:DataTypes.STRING 
 	  },
    // 性别
    sex:{
      type:DataTypes.STRING 
    },
    // 邮箱
    email:{
      type:DataTypes.STRING 
    },
    //  顾客电话
    tel:{
      type:DataTypes.STRING ,
      allowNull: false,
      unique: true
  	},
    // 进度
    progress:{
      type:DataTypes.STRING ,
      defaultValue: '未完善',
    },
    // 账号创建时间
    creationTime:{
      type:DataTypes.STRING,
    },
    // 收货人
    consignee:{
      type:DataTypes.STRING,
    },
    // 收货手机号码
    phoneNum:{
      type:DataTypes.STRING,
    },
    // 所在地区
    area:{
      type:DataTypes.STRING,
    },
    // 详细地址
    fullDddress:{
      type:DataTypes.STRING,
    },



  }, {
    hooks: {
      beforeCount(options: any): HookReturn {
        options.raw = true;
      }
    }
  });

  // eslint-disable-next-line @typescript-eslint/no-unused-vars
  (customer as any).associate = function (models: any): void {
    // Define associations here
    // See https://sequelize.org/master/manual/assocs.html
  };

  return customer;
}
